package com.ruoyi.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 商城产品信息对象 jiajia_mall_shop_product_information
 * 
 * @author ruoyi
 * @date 2025-03-05
 */
public class JiajiaMallShopProductInformation extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 店铺id */
    @Excel(name = "店铺id")
    private Long shopId;

    /** 产品名称 */
    @Excel(name = "产品名称")
    private String productName;

    /** 大类id */
    @Excel(name = "大类id")
    private Long typeId;

    /** 小类id */
    @Excel(name = "小类id")
    private Long levelId;

    /** 产品图片ids */
    @Excel(name = "产品图片ids")
    private String photoOssIds;

    private String  specifications;

    /** 产品图片id */
    @Excel(name = "产品图片id")
    private String photoOssId;

    /** 产品图片ids */
    @Excel(name = "产品图片ids")
    private String photoUrlIds;

    /** 产品图片id */
    @Excel(name = "产品图片id")
    private String photoUrlId;

    /** 产品描述 */
    @Excel(name = "产品描述")
    private String productDescribe;

    /** 产品产地 */
    @Excel(name = "产品产地")
    private String productOrigin;

    /** 产品质量 */
    @Excel(name = "产品质量")
    private String productQuality;

    /** 产品价格 */
    @Excel(name = "产品价格")
    private BigDecimal productPrice;

    /** 库存 */
    @Excel(name = "库存")
    private Long inventory;

    /** 是否下架（默认下架 审核后上架） */
    @Excel(name = "是否下架", readConverterExp = "默认下架,审核后上架")
    private Integer removeShelf;

    /** 是否删除 */
    @Excel(name = "是否删除")
    private Integer deleted;

    /** 版本号 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "版本号", width = 30, dateFormat = "yyyy-MM-dd")
    private Date version;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setShopId(Long shopId) 
    {
        this.shopId = shopId;
    }

    public Long getShopId() 
    {
        return shopId;
    }
    public void setProductName(String productName) 
    {
        this.productName = productName;
    }

    public String getProductName() 
    {
        return productName;
    }
    public void setTypeId(Long typeId) 
    {
        this.typeId = typeId;
    }

    public Long getTypeId() 
    {
        return typeId;
    }
    public void setLevelId(Long levelId) 
    {
        this.levelId = levelId;
    }

    public Long getLevelId() 
    {
        return levelId;
    }
    public void setPhotoOssIds(String photoOssIds) 
    {
        this.photoOssIds = photoOssIds;
    }

    public String getPhotoOssIds() {
        return photoOssIds;
    }

    public String getPhotoOssId() {
        return photoOssId;
    }

    public void setPhotoOssId(String photoOssId) {
        this.photoOssId = photoOssId;
    }

    public String getPhotoUrlIds() {
        return photoUrlIds;
    }

    public void setPhotoUrlIds(String photoUrlIds) {
        this.photoUrlIds = photoUrlIds;
    }

    public String getPhotoUrlId() {
        return photoUrlId;
    }

    public void setPhotoUrlId(String photoUrlId) {
        this.photoUrlId = photoUrlId;
    }

    public void setProductDescribe(String productDescribe) {
        this.productDescribe = productDescribe;
    }

    public String getProductDescribe()
    {
        return productDescribe;
    }
    public void setProductOrigin(String productOrigin) 
    {
        this.productOrigin = productOrigin;
    }

    public String getProductOrigin() 
    {
        return productOrigin;
    }
    public void setProductQuality(String productQuality) 
    {
        this.productQuality = productQuality;
    }

    public String getProductQuality() 
    {
        return productQuality;
    }
    public void setProductPrice(BigDecimal productPrice) 
    {
        this.productPrice = productPrice;
    }

    public BigDecimal getProductPrice() 
    {
        return productPrice;
    }
    public void setInventory(Long inventory) 
    {
        this.inventory = inventory;
    }

    public Long getInventory() 
    {
        return inventory;
    }
    public void setRemoveShelf(Integer removeShelf) 
    {
        this.removeShelf = removeShelf;
    }

    public Integer getRemoveShelf() 
    {
        return removeShelf;
    }
    public void setDeleted(Integer deleted) 
    {
        this.deleted = deleted;
    }

    public Integer getDeleted() 
    {
        return deleted;
    }
    public void setVersion(Date version) 
    {
        this.version = version;
    }

    public Date getVersion() 
    {
        return version;
    }

    public String getSpecifications() {
        return specifications;
    }

    public void setSpecifications(String specifications) {
        this.specifications = specifications;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("shopId", getShopId())
            .append("productName", getProductName())
            .append("typeId", getTypeId())
            .append("levelId", getLevelId())
            .append("photoOssIds", getPhotoOssIds())
            .append("photoOssId", getPhotoOssId())
            .append("photoUrlIds", getPhotoUrlIds())
            .append("photoUrlId", getPhotoUrlId())
            .append("productDescribe", getProductDescribe())
            .append("productOrigin", getProductOrigin())
            .append("productQuality", getProductQuality())
            .append("productPrice", getProductPrice())
            .append("inventory", getInventory())
            .append("removeShelf", getRemoveShelf())
            .append("deleted", getDeleted())
            .append("version", getVersion())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
